import { isEmpty } from "../../utils"
import { Admins } from '../../models/Admin';

// 验证注册的表单参数
export function validateRegisterForm(form: Admins) {
  let message = ''
  const params = new Map([
    ['account', '账号'],
    // ['password', '密码'],
    ['name', '姓名'],
    // ['state', '状态'],
    // ['role', '角色'],
  ])
  // 验证手机号码
  if (form.phone) {
    // 以 13、14、15、16、17、18、19 开头的11位数即可
    const phoneReg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
    const testRes = phoneReg.test(form.phone)
    if (!testRes) {
      return message = '请输入正确的手机号码'
    }
  }
  // 验证邮箱
  if (form.email) {
    const emailReg = /[^@ \t\r\n]+@[^@ \t\r\n]+\.[^@ \t\r\n]+/
    const testRes = emailReg.test(form.email)
    if (!testRes) {
      return message = '请输入正确的电子邮箱'
    }
  }
  if (form.password?.length < 6 || form.password?.length > 10) {
    message = `密码长度必须6-10之间！`
  }
  params.forEach((val, key) => {
    if (isEmpty(form[key])) {
      message = `缺少必填参数-${val}!`
    }
  })
  return message
}

// 验证登录的表单参数
export function validateLoginForm(form: Admins) {
  let message = ''
  const params = new Map([
    ['account', '账号'],
    ['password', '密码'],
  ])
  params.forEach((val, key) => {
    if (isEmpty(form[key])) {
      message = `缺少必填参数-${val}!`
    }
  })
  return message
}

// 验证修改个人信息的表单参数
export function validateUpdateInfoForm(form: Admins) {
  let message = ''
  const params = new Map([
    ['id', 'id'],
    // ['phone', '联系方式'],
    // ['email', '电子邮箱'],
    ['gender', '性别'],
  ])

  // 验证手机号码
  if (form.phone) {
    // 以 13、14、15、16、17、18、19 开头的11位数即可
    const phoneReg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
    const testRes = phoneReg.test(form.phone)
    if (!testRes) {
      message = '请输入正确的手机号码'
    }
  }
  // 验证邮箱
  if (form.email) {
    const emailReg = /[^@ \t\r\n]+@[^@ \t\r\n]+\.[^@ \t\r\n]+/
    const testRes = emailReg.test(form.email)
    if (!testRes) {
      message = '请输入正确的电子邮箱'
    }
  }

  params.forEach((val, key) => {
    if (isEmpty(form[key])) {
      message = `缺少必填参数-${val}!`
    }
  })
  return message
}

// 验证手机号码和邮箱
export function validatePhoneAndEmail(form: Admins) {
  // 验证手机号码
  if (form.phone) {
    // 以 13、14、15、16、17、18、19 开头的11位数即可
    const phoneReg = /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
    const testRes = phoneReg.test(form.phone)
    if (!testRes) {
      return { msg: '手机号码', value: form.phone }
    }
  }
  // 验证邮箱
  if (form.email) {
    const emailReg = /[^@ \t\r\n]+@[^@ \t\r\n]+\.[^@ \t\r\n]+/
    const testRes = emailReg.test(form.email)
    if (!testRes) {
      return { msg: '邮箱', value: form.email }
    }
  }
}

// 校验excel文件中，必填项是否为空
export function validateExcelForm(form: Admins) {
  let message = ''
  const params = new Map([
    ['name', '姓名'],
    ['account', '账号'],
    ['gender', '性别'],
  ])
  params.forEach((val, key) => {
    if (isEmpty(form[key])) {
      message = `文件某项缺少必填参数-【${val}】，请检查后重新上传！`
    }
  })
  return message
}